home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Pascal Super Library
/
Pascal Super Library (CW International)(1997).bin
/
LIBRARY
/
DMTDEMOS
/
GETDPB.DEM
< prev
next >
Wrap
Text File
|
1994-07-02
|
2KB
|
69 lines
program GetDPBSample;
uses crt, DMT;
var
DPBbuffer : ^DPBstruct; { The DPBstruct data type is defined in the DMT unit }
IOError : word;
DrvLetter : char;
begin
Color( 7, 0 );
clrscr;
write( 'Select drive to check ( A-Z ) [ :]');
gotoxy( wherex - 3, wherey );
DrvLetter := upcase( readkey );
writeln( DrvLetter );
DPBbuffer := GetDPB( DrvLetter ); { Call GetDPB function }
if ( ErrFlag ) then
begin
writeln( #7 );
writeln( ShowError( GetErrCode ) );
end
else
with DPBbuffer^ do
begin
clrscr;
writeln( ' DRIVE PARAMETER BLOCK (DPB) ');
writeln;
writeln( 'Drive Specified : ', DrvLetter );
writeln( 'Physical drive number : ', DriveNumber );
writeln( 'Device Driver unit number : ', UnitNumber );
writeln( 'Sector size in bytes : ', BytesPerSect );
writeln( 'Sectors per cluster : ', SectsPerClust + 1 );
writeln( 'First FAT sector : ', FirstFATSect );
writeln( 'Number of FATs : ', NumOfFATs );
writeln( 'Maximum root-directory entries : ', MaxRootEntries );
writeln( 'First data sector : ', FirstSect );
writeln( 'Number of clusters on disk : ', InsComma( NumOfClusts - 1 ) );
writeln( 'Sectors used by each FAT : ', SectsPerFAT );
writeln( 'First root-directory sector : ', FirstDirSect );
writeln( 'Device driver header address : ', WrdToHex( seg( DevHeaderAddr^ ) ), ':',
WrdToHex( ofs( DevHeaderAddr^ ) ) );
writeln( 'Media descriptor code : ', WrdToHex( MediaCode ),' hex' );
write ( 'Drive has been accessed? : ' );
if ( DrvAccessed = $ff ) then
writeln( 'NO' )
else
writeln( 'YES' );
writeln( 'Next DPB address : ', WrdToHex( NextDPBseg ), ':',
WrdToHex( nextDPBofs ) );
writeln( 'Last disk cluster allocated : ', InsComma( LastClustUsed ) );
write ( 'Number of free clusters : ' );
if ( NumOfFreeClusts = 65535 ) then
writeln( 'unknown..??' )
else
writeln( InsComma( NumOfFreeClusts ) );
end;
GetEnter;
end.